import java.util.Arrays;

public class Day5 {
//环形链表
//    public boolean hasCycle(ListNode head) {
//        if(head == null||head.next==null){
//            return false;
//        }
//        //第一想到了快慢指针
//        ListNode fast = head;
//        ListNode slow = head;
//        while(fast!=null&&fast.next!=null){
//            fast = fast.next.next;
//            slow = slow.next;
//            if(fast == slow){
//                return true;
//            }
//        }
//        return false;
//    }


    //合并两个有序链表
//    public ListNode Merge(ListNode list1,ListNode list2) {
//        //申请虚拟节点
//        ListNode newHead = new ListNode(-1);
//        //cur指向当前的虚拟节点
//        ListNode cur = newHead;
//        //while循环,只要遍历完其中一个链表就结束循环
//        while(list1 != null && list2 != null){
//            if (list1.val < list2.val){
//                //拼接
//                cur.next = list1;
//                cur = cur.next;
//                list1 = list1.next;
//
//            } else {
//                //拼接
//                cur.next = list2;
//                cur = cur.next;
//                list2 = list2.next;
//            }
//        }
//        //拼接不为空的，两个都遍历完的时候任意拼接一个
//        if(list1 != null){
//            cur.next = list1;
//        }else{
//            cur.next = list2;
//        }
//        return newHead.next;
//    }

    public static void duplicateZeros(int[] arr) {
        int[] newArr = new int[arr.length];
        int i = 0;
        int j = 0;
        while(i < arr.length && j < arr.length){
            if(arr[i] != 0){
                newArr[j++] = arr[i++];
            }else{
                newArr[j++] = arr[i];
                newArr[j++] = arr[i++];
            }
        }
        arr = newArr;

    }

    public static void main(String[] args) {
        int[] arr = new int[]{1,2,0,3};
        duplicateZeros(arr);
        System.out.println(Arrays.toString(arr));
    }
}
